home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #6 / Amiga Plus CD - 2004 - No. 06.iso / AmiSoft / Util / libs / ExtraLib.lha / Extra / include / rhosigma / extra_lib.i < prev    next >
Text File  |  2004-05-30  |  16KB  |  421 lines

  1. ; ___________________________________________________________________________
  2. ; |*************************************************************************|
  3. ; |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  4. ; |*| Set TAB to 15 for best readable file layout. |*| HiSoft DevPac 3.04 |*|
  5. ; |*|______________________________________________|*|____________________|*|
  6. ; |*************************************************************************|
  7. ; |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  8. ; |*|               |*|  $Id: extra_lib.i (30.05.04)                      |*|
  9. ; |*| ###### ###### |*|  RhoSigma Source based on NDK 3.1 Includes 40.15  |*|
  10. ; |*| ##  ## ##   # |*| _________________________________________________ |*|
  11. ; |*| ##  ##  ##    |*|                                                   |*|
  12. ; |*| ######   ##   |*|  The vector offsets of extra.libary's functions   |*|
  13. ; |*| ##      ##    |*|                                                   |*|
  14. ; |*| ##     ##   # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
  15. ; |*| ##     ###### |*|  Copyright © 1998-2004 RhoSigma, Roland Heyder    |*|
  16. ; |*|               |*|  All Rights Reserved.                             |*|
  17. ; |*|_______________|*|___________________________________________________|*|
  18. ; |*************************************************************************|
  19. ; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  20.  
  21.     IFND    EXTRA_LIB_I
  22. EXTRA_LIB_I    SET    1
  23.  
  24. ** start bias (-30) **
  25. ;--------------------------------------------------------------------
  26. ; ------------------------------------------- Interne Funktionen ---
  27. ;--------------------------------------------------------------------
  28. ** private (-30) **
  29. ** private (-36) **
  30. ;--------------------------------------------------------------------
  31. ; --------------------------- TRACKDISK/RAMDRIVE - Erweiterungen ---
  32. ;--------------------------------------------------------------------
  33. _LVO_EXTRA_BAMCheckSum        = -42
  34. _LVO_EXTRA_BootBlockSum        = -48
  35. _LVO_EXTRA_DiskBlockSum        = -54
  36. ;--------------------------------------------------------------------
  37. ; ------------------------------------------ DOS - Erweiterungen ---
  38. ;  --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
  39. ;--------------------------------------------------------------------
  40. _LVO_EXTRA_OpenBuf        = -60
  41. _LVO_EXTRA_CloseBuf        = -66
  42. _LVO_EXTRA_FileToBuf        = -72
  43. _LVO_EXTRA_BufToFile        = -78
  44. _LVO_EXTRA_ClearBuf        = -84
  45. _LVO_EXTRA_DuplicateBuf        = -90
  46. _LVO_EXTRA_BufInfo        = -96
  47. _LVO_EXTRA_SeekBuf        = -102
  48. _LVO_EXTRA_Store        = -108
  49. _LVO_EXTRA_InsertBuf        = -114
  50. _LVO_EXTRA_InsertFile        = -120
  51. _LVO_EXTRA_Replace        = -126
  52. _LVO_EXTRA_Get            = -132
  53. _LVO_EXTRA_Clear        = -138
  54. _LVO_EXTRA_FindData        = -144
  55. _LVO_EXTRA_FindNext        = -150
  56. _LVO_EXTRA_FindPrev        = -156
  57. _LVO_EXTRA_FreeFinds        = -162
  58. _LVO_EXTRA_SetBookmark        = -168
  59. _LVO_EXTRA_GotoBookmark        = -174
  60. ; -------------------------------------------------------------------
  61. _LVO_EXTRA_FindString        = -180
  62. _LVO_EXTRA_GetLength        = -186
  63. _LVO_EXTRA_LastError        = -192
  64. _LVO_EXTRA_LongToString        = -198
  65. _LVO_EXTRA_StringToLong        = -204
  66. _LVO_EXTRA_PackByteRun1        = -210
  67. _LVO_EXTRA_UnpackByteRun1        = -216
  68. _LVO_EXTRA_PrintIoError        = -222
  69. _LVO_EXTRA_FlipCase        = -228
  70. ;--------------------------------------------------------------------
  71. ; ----------------------------------------- EXEC - Erweiterungen ---
  72. ;--------------------------------------------------------------------
  73. _LVO_EXTRA_CmpMem        = -234
  74. _LVO_EXTRA_CopyMemI        = -240
  75. _LVO_EXTRA_FillMem        = -246
  76. _LVO_EXTRA_GetMem        = -252
  77. _LVO_EXTRA_UnGetMem        = -258
  78. ;--------------------------------------------------------------------
  79. ; ------------------------------------- GRAPHICS - Erweiterungen ---
  80. ;--------------------------------------------------------------------
  81. _LVO_EXTRA_OutlineOff        = -264
  82. _LVO_EXTRA_OutlineOn        = -270
  83. _LVO_EXTRA_SetOPen        = -276
  84. _LVO_EXTRA_SpecText        = -282
  85. _LVO_EXTRA_SpecTextPrefs        = -288
  86. ;--------------------------------------------------------------------
  87. ; ------------------------------------ INTUITION - Erweiterungen ---
  88. ;--------------------------------------------------------------------
  89. _LVO_EXTRA_ShowMsg        = -294
  90. ;
  91. ;====================================================================
  92. ; === neu ab v2.062 ================================================
  93. ;====================================================================
  94. ;
  95. ;--------------------------------------------------------------------
  96. ; ------------------------------------------ DOS - Erweiterungen ---
  97. ;  --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
  98. ;--------------------------------------------------------------------
  99. _LVO_EXTRA_v2_OpenBuf        = -300
  100. _LVO_EXTRA_v2_FileToBuf        = -306
  101. _LVO_EXTRA_v2_DuplicateBuf        = -312
  102. ;
  103. ;====================================================================
  104. ; === neu ab v3.342 ================================================
  105. ;====================================================================
  106. ;
  107. ;--------------------------------------------------------------------
  108. ; ------------------------------------------ DOS - Erweiterungen ---
  109. ;--------------------------------------------------------------------
  110. _LVO_EXTRA_VSPrintF        = -318
  111. ;--------------------------------------------------------------------
  112. ; ----------------------------------------- EXEC - Erweiterungen ---
  113. ;--------------------------------------------------------------------
  114. _LVO_EXTRA_GetMem16        = -324
  115. ;--------------------------------------------------------------------
  116. ; ----------------------------------------- MATH - Erweiterungen ---
  117. ;  --------- diverse Fließkomma/Ascii/Integer-Umwandlungen --------
  118. ;--------------------------------------------------------------------
  119. _LVO_EXTRA_DiscardString        = -330
  120. ; ------------------------------------------- Wandlung nach Ascii ---
  121. _LVO_EXTRA_Int32ToString        = -336
  122. _LVO_EXTRA_Int64ToString        = -342
  123. _LVO_EXTRA_FFPToString        = -348
  124. _LVO_EXTRA_SGLToString        = -354
  125. _LVO_EXTRA_DBLToString        = -360
  126. ; ------------------------------------ Wandlung nach Int32 (LONG) ---
  127. _LVO_EXTRA_StringToInt32        = -366
  128. ;--------------------------------------------------------------------
  129. ; --------------------------------------- Reservierte Funktionen ---
  130. ;--------------------------------------------------------------------
  131. ** private (-372) **
  132. ** private (-378) **
  133. ** private (-384) **
  134. ** private (-390) **
  135. ** private (-396) **
  136. ** private (-402) **
  137. ** private (-408) **
  138. ** private (-414) **
  139. ** private (-420) **
  140. ** private (-426) **
  141. ** private (-432) **
  142. ** private (-438) **
  143. ** private (-444) **
  144. ** private (-450) **
  145. ** private (-456) **
  146. ** private (-462) **
  147. ** private (-468) **
  148. ** private (-474) **
  149. ** private (-480) **
  150. ** private (-486) **
  151. ** private (-492) **
  152. ** private (-498) **
  153. ** private (-504) **
  154. ** private (-510) **
  155.  
  156.     IFD    NDK_LVO_NAMES
  157. ;----------------------------------------------------------------------------
  158. ; Die alten Symbole nach NDK-Norm werden nur noch verwendet, wenn es explizit
  159. ; gewünscht wird (z.B. in Voraussicht auf die Einbindung der amiga.lib oder
  160. ; anderer Module, welche nur die alten NDK-Symbole kennen.). Diese Symbole
  161. ; werden daher auch gleich exportiert. Definieren Sie zu diesem Zwecke das
  162. ; Symbol NDK_LVO_NAMES mit einem beliebigen Wert.
  163. ;----------------------------------------------------------------------------
  164.  
  165. ** start bias (-30) **
  166. ;--------------------------------------------------------------------
  167. ; ------------------------------------------- Interne Funktionen ---
  168. ;--------------------------------------------------------------------
  169. ** private (-30) **
  170. ** private (-36) **
  171. ;--------------------------------------------------------------------
  172. ; --------------------------- TRACKDISK/RAMDRIVE - Erweiterungen ---
  173. ;--------------------------------------------------------------------
  174. _LVOBAMCheckSum        = -42
  175. _LVOBootBlockSum        = -48
  176. _LVODiskBlockSum        = -54
  177. ;--------------------------------------------------------------------
  178. ; ------------------------------------------ DOS - Erweiterungen ---
  179. ;  --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
  180. ;--------------------------------------------------------------------
  181. _LVOOpenBuf            = -60
  182. _LVOCloseBuf            = -66
  183. _LVOFileToBuf            = -72
  184. _LVOBufToFile            = -78
  185. _LVOClearBuf            = -84
  186. _LVODuplicateBuf        = -90
  187. _LVOBufInfo            = -96
  188. _LVOSeekBuf            = -102
  189. _LVOStore            = -108
  190. _LVOInsertBuf            = -114
  191. _LVOInsertFile            = -120
  192. _LVOReplace            = -126
  193. _LVOGet            = -132
  194. _LVOClear            = -138
  195. _LVOFindData            = -144
  196. _LVOFindNext            = -150
  197. _LVOFindPrev            = -156
  198. _LVOFreeFinds            = -162
  199. _LVOSetBookmark        = -168
  200. _LVOGotoBookmark        = -174
  201. ; -------------------------------------------------------------------
  202. _LVOFindString            = -180
  203. _LVOGetLength            = -186
  204. _LVOLastError            = -192
  205. _LVOLongToString        = -198
  206. _LVOStringToLong        = -204
  207. _LVOPackByteRun1        = -210
  208. _LVOUnpackByteRun1        = -216
  209. _LVOPrintIoError        = -222
  210. _LVOFlipCase            = -228
  211. ;--------------------------------------------------------------------
  212. ; ----------------------------------------- EXEC - Erweiterungen ---
  213. ;--------------------------------------------------------------------
  214. _LVOCmpMem            = -234
  215. _LVOCopyMemI            = -240
  216. _LVOFillMem            = -246
  217. _LVOGetMem            = -252
  218. _LVOUnGetMem            = -258
  219. ;--------------------------------------------------------------------
  220. ; ------------------------------------- GRAPHICS - Erweiterungen ---
  221. ;--------------------------------------------------------------------
  222. _LVOOutlineOff            = -264
  223. _LVOOutlineOn            = -270
  224. _LVOSetOPen            = -276
  225. _LVOSpecText            = -282
  226. _LVOSpecTextPrefs        = -288
  227. ;--------------------------------------------------------------------
  228. ; ------------------------------------ INTUITION - Erweiterungen ---
  229. ;--------------------------------------------------------------------
  230. _LVOShowMsg            = -294
  231. ;
  232. ;====================================================================
  233. ; === neu ab v2.062 ================================================
  234. ;====================================================================
  235. ;
  236. ;--------------------------------------------------------------------
  237. ; ------------------------------------------ DOS - Erweiterungen ---
  238. ;  --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
  239. ;--------------------------------------------------------------------
  240. _LVOv2_OpenBuf            = -300
  241. _LVOv2_FileToBuf        = -306
  242. _LVOv2_DuplicateBuf        = -312
  243. ;
  244. ;====================================================================
  245. ; === neu ab v3.342 ================================================
  246. ;====================================================================
  247. ;
  248. ;--------------------------------------------------------------------
  249. ; ------------------------------------------ DOS - Erweiterungen ---
  250. ;--------------------------------------------------------------------
  251. _LVOVSPrintF            = -318
  252. ;--------------------------------------------------------------------
  253. ; ----------------------------------------- EXEC - Erweiterungen ---
  254. ;--------------------------------------------------------------------
  255. _LVOGetMem16            = -324
  256. ;--------------------------------------------------------------------
  257. ; ----------------------------------------- MATH - Erweiterungen ---
  258. ;  --------- diverse Fließkomma/Ascii/Integer-Umwandlungen --------
  259. ;--------------------------------------------------------------------
  260. _LVODiscardString        = -330
  261. ; ------------------------------------------- Wandlung nach Ascii ---
  262. _LVOInt32ToString        = -336
  263. _LVOInt64ToString        = -342
  264. _LVOFFPToString        = -348
  265. _LVOSGLToString        = -354
  266. _LVODBLToString        = -360
  267. ; ------------------------------------ Wandlung nach Int32 (LONG) ---
  268. _LVOStringToInt32        = -366
  269. ;--------------------------------------------------------------------
  270. ; --------------------------------------- Reservierte Funktionen ---
  271. ;--------------------------------------------------------------------
  272. ** private (-372) **
  273. ** private (-378) **
  274. ** private (-384) **
  275. ** private (-390) **
  276. ** private (-396) **
  277. ** private (-402) **
  278. ** private (-408) **
  279. ** private (-414) **
  280. ** private (-420) **
  281. ** private (-426) **
  282. ** private (-432) **
  283. ** private (-438) **
  284. ** private (-444) **
  285. ** private (-450) **
  286. ** private (-456) **
  287. ** private (-462) **
  288. ** private (-468) **
  289. ** private (-474) **
  290. ** private (-480) **
  291. ** private (-486) **
  292. ** private (-492) **
  293. ** private (-498) **
  294. ** private (-504) **
  295. ** private (-510) **
  296.  
  297.     XDEF    _LVOBAMCheckSum
  298.     XDEF    _LVOBootBlockSum
  299.     XDEF    _LVODiskBlockSum
  300.     XDEF    _LVOOpenBuf
  301.     XDEF    _LVOCloseBuf
  302.     XDEF    _LVOFileToBuf
  303.     XDEF    _LVOBufToFile
  304.     XDEF    _LVOClearBuf
  305.     XDEF    _LVODuplicateBuf
  306.     XDEF    _LVOBufInfo
  307.     XDEF    _LVOSeekBuf
  308.     XDEF    _LVOStore
  309.     XDEF    _LVOInsertBuf
  310.     XDEF    _LVOInsertFile
  311.     XDEF    _LVOReplace
  312.     XDEF    _LVOGet
  313.     XDEF    _LVOClear
  314.     XDEF    _LVOFindData
  315.     XDEF    _LVOFindNext
  316.     XDEF    _LVOFindPrev
  317.     XDEF    _LVOFreeFinds
  318.     XDEF    _LVOSetBookmark
  319.     XDEF    _LVOGotoBookmark
  320.     XDEF    _LVOFindString
  321.     XDEF    _LVOGetLength
  322.     XDEF    _LVOLastError
  323.     XDEF    _LVOLongToString
  324.     XDEF    _LVOStringToLong
  325.     XDEF    _LVOPackByteRun1
  326.     XDEF    _LVOUnpackByteRun1
  327.     XDEF    _LVOPrintIoError
  328.     XDEF    _LVOFlipCase
  329.     XDEF    _LVOCmpMem
  330.     XDEF    _LVOCopyMemI
  331.     XDEF    _LVOFillMem
  332.     XDEF    _LVOGetMem
  333.     XDEF    _LVOUnGetMem
  334.     XDEF    _LVOOutlineOff
  335.     XDEF    _LVOOutlineOn
  336.     XDEF    _LVOSetOPen
  337.     XDEF    _LVOSpecText
  338.     XDEF    _LVOSpecTextPrefs
  339.     XDEF    _LVOShowMsg
  340.     XDEF    _LVOv2_OpenBuf
  341.     XDEF    _LVOv2_FileToBuf
  342.     XDEF    _LVOv2_DuplicateBuf
  343.     XDEF    _LVOVSPrintF
  344.     XDEF    _LVOGetMem16
  345.     XDEF    _LVODiscardString
  346.     XDEF    _LVOInt32ToString
  347.     XDEF    _LVOInt64ToString
  348.     XDEF    _LVOFFPToString
  349.     XDEF    _LVOSGLToString
  350.     XDEF    _LVODBLToString
  351.     XDEF    _LVOStringToInt32
  352. ;----------------------------------------------------------------------------
  353.     ENDC
  354.  
  355. ;*** lvo / Lib-Call-Macro ***
  356. ;============================================================================
  357. ; Dieses Macro dient zum Aufruf einer Funktion aus der dazugehörigen Library.
  358. ;  Dabei ist dieses Macro gegenüber den CALL-Macros des NDK jedoch so intelli-
  359. ; gent, daß es erkennt, ob mit ihm auch wirklich eine Funktion der zugehörigen
  360. ; Library aufgerufen wird. Damit wird vermieden, daß versehendlich z.B. eine
  361. ; Funktion der exec.library mit dem Macro (und damit natürlich auch dem Zeiger)
  362. ; der graphics.library aufgerufen werden kann, was höchstwahrscheinlich sofort
  363. ; einen Systemabsturz nach sich ziehen würde.
  364. ;  Außerdem haben Optimal-Programmierer auch die Möglichkeit Quick-Aufrufe zu
  365. ; verwenden, um jedes überflüssige Byte einzusparen. Für die Programmierung re-
  366. ; entranter Programme ist ebenfalls eine Syntax definiert, bei der die voll-
  367. ; ständige effektive Addresse des Basis-Zeigers als Parameter übergeben werden
  368. ; muß, da dort ja keine flüchtigen absoluten Adressen verwendet werden dürfen.
  369. ;----------------------------------------------------------------------------
  370. ; Definiert:    ... _lib.i  (Copyright © 1998-2004 RhoSigma, Roland Heyder)
  371. ;
  372. ; Schablone:    Func/A, Opts/F/S
  373. ;
  374. ; Parameter:    Func --> Name der aufzurufenden Funktion ohne »_LVO_LIBNAME_«
  375. ;
  376. ;    Opts --> - das Schlüsselwort »OK« für einen QuickJump-Aufruf
  377. ;               (s. Bemerkung)
  378. ;
  379. ;             - Opts weglassen, um Basis-Symbol »_LibnameBase« ins
  380. ;               Register A6 zu laden
  381. ;
  382. ;             - die effektive Adresse, welche die Basis der Library
  383. ;               enthält (z.B. »globals_Libname(a5)«)
  384. ;
  385. ; Bemerkung:    Wird das Schlüsselwort »OK« angegeben, dann wird davon ausge-
  386. ;    gangen, daß die richtige Basisadresse der Library bereits im
  387. ;    Register A6 steht, und es wird sofort in die Funktion gesprungen.
  388. ;============================================================================
  389.  
  390. DOEXTRA    MACRO    (Func/A, Opts/F/S)
  391.     ;--------------------------------
  392.  
  393.     IFND    _LVO_EXTRA_\1
  394.      FAIL    \1 (unknown or DOEXTRA is wrong)
  395.     ENDC
  396.  
  397.     ;OK for opts means base ready, no baseloading needed
  398.  
  399.     IFC    '\2','OK'
  400.      jsr    _LVO_EXTRA_\1(a6)
  401.      MEXIT
  402.     ENDC
  403.  
  404.     ;nothing means, load static base (for non-pure code only)
  405.  
  406.     IFC    '\2',''
  407.      movea.l    _ExtraBase,a6
  408.      jsr    _LVO_EXTRA_\1(a6)
  409.      MEXIT
  410.     ENDC
  411.  
  412.     ;else opts should be the entire baselocation (for pure code)
  413.  
  414.     movea.l    \2,a6
  415.     jsr    _LVO_EXTRA_\1(a6)
  416.  
  417.     ;--------------------------------
  418.     ENDM    ;DOEXTRA
  419.  
  420.     ENDC    ;extra_lib.i
  421.